﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using System.Web.Mvc;
//using www.SService;

namespace www.Controllers
{
    public class CategoryControllers : Controller
    {
        private readonly ObjectCache _cache = MemoryCache.Default;
        //private readonly ServiceClient _service1 = new ServiceClient();

        ////private static List<SelectListItem> _listItemsList;
        ////
        //// GET: /Category/
        //[HttpGet]
        //public ActionResult Index()
        //{
        //    try
        //    {
        //        LoadType();
        //        var lType = (List<RelaxTypeDataContract>)_cache["Type"];

        //        if (_cache["Category"] == null)
        //        {
        //            var lData = _service1.GetCategoryDataContracts();
        //            if (lData.Any())
        //            {
        //                var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
        //                _cache.Set("Category", lData, policy);
        //                ViewData["Data"] = lData.Where(p =>
        //                {
        //                    var relaxTypeDataContract = lType.FirstOrDefault();
        //                    return relaxTypeDataContract != null ;
        //                }).ToList();
        //            }
        //        }
        //        else
        //        {
        //            var lData = (List<RelaxCategoryDataContract>)_cache["Category"];
        //            ViewData["Data"] = lData.Where(p =>
        //            {
        //                var relaxTypeDataContract = lType.FirstOrDefault();
        //                return relaxTypeDataContract != null ;
        //            }).ToList();
        //        }
        //        return View();
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}
        //[HttpPost]
        //public ActionResult Index(FormCollection collection)
        //{
        //    try
        //    {
        //        var type = collection["Type"];
        //        LoadType(Convert.ToInt32(type));

        //        if (_cache["Category"] != null)
        //        {
        //            var lReturn =
        //                ((IEnumerable<RelaxCategoryDataContract>)_cache["Category"]).ToList();

        //            ViewData["Data"] = lReturn;
        //        }
        //        else
        //        {
        //            var lData = _service1.GetCategoryDataContracts();
        //            if (lData.Any())
        //            {
        //                var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
        //                _cache.Set("Category", lData, policy);
        //                ViewData["Data"] = lData.ToList();
        //            }
        //        }
        //        return View();
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}

        //private void LoadType(int id = 0)
        //{
        //    if (_cache["Type"] == null)
        //    {
        //        var lReturn = _service1.GeTypeDataContracts();
        //        if (lReturn.Any())
        //        {
        //            var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
        //            _cache.Set("Type", lReturn, policy);
        //        }
        //    }
        //    var lData = (List<RelaxTypeDataContract>) _cache["Type"];
        //    var listItemsList = new List<SelectListItem>();
        //    if (id == 0)
        //    {
        //        if (lData != null)
        //            listItemsList.AddRange(lData.Select(item => new SelectListItem {Text = item.Name, Value = item.Id.ToString()}));

        //        ViewBag.Type = listItemsList;
        //    }
        //    else
        //    {
        //        if (lData != null)
        //            listItemsList.AddRange(lData.Select(item => new SelectListItem {Text = item.Name, Value = item.Id.ToString(), Selected = id == item.Id}));

        //        ViewBag.Type = listItemsList;
        //    }
        //}

       
        //[HttpGet]
        //public ActionResult Add()
        //{
        //    LoadType();
        //    return View();
        //}

        //[HttpPost]
        //public ActionResult Add(FormCollection collection)
        //{
        //    try
        //    {
        //        var type = collection["Type"];
        //        if (string.IsNullOrEmpty(type))
        //        {
        //            Response.Write("<script>alert('Thể loại không được trống');</script>");
        //            return View();
        //        }
        //        LoadType(Convert.ToInt32(type));
              
        //        var name = collection["txtName"];
        //        if (string.IsNullOrEmpty(name))
        //        {
        //            Response.Write("<script>alert('Tên không được trống');</script>");
        //            return View();
        //        }

        //        var category = new RelaxCategoryDataContract
        //        {
        //            Name = name,
        //            Tag = name.Replace(' ','-'),
        //            Keyword = collection["txtKeyword"],
        //            Decription = collection["txtDecription"],
        //        };
        //        //var id = _service1.AddCategory(category);
        //        //if (id <= 0) return RedirectToAction("Add", "Category");

        //        //category.Id = id;
        //        var lData = (List<RelaxCategoryDataContract>)_cache["Category"];
        //        if (lData == null)
        //            lData = new List<RelaxCategoryDataContract> { category };
        //        else
        //            lData.Add(category);

        //        _cache["Category"] = lData;

        //        return RedirectToAction("Index", "Category");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}

        //[HttpGet]
        //public ActionResult Edit(int id = 0)
        //{
        //    try
        //    {
        //        var lData = (List<RelaxCategoryDataContract>)_cache["Category"];
        //        var first = lData.FirstOrDefault(p => p.Id == id);
        //        if (first == null)
        //            return HttpNotFound();

        //        //LoadType(Convert.ToInt32(first.TypeId));

        //        return View(first);
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Category");
        //    }
        //}

        //[HttpPost]
        //public ActionResult Edit(FormCollection collection)
        //{
        //    try
        //    {
        //        var type = collection["Type"];
        //        LoadType(Convert.ToInt32(type));
               
        //        var name = collection["txtName"];
        //        if (string.IsNullOrEmpty(name))
        //        {
        //            Response.Write("<script>alert('Tên không được trống');</script>");
        //            return View();
        //        }

        //        var lData = (List<RelaxCategoryDataContract>)_cache["Category"];
        //        var first = lData.FirstOrDefault(p => p.Id == Convert.ToInt32(collection["id"]));

        //        if (first != null)
        //        {
        //            first.Name = name;
        //            first.Tag = name.Replace(' ', '-');
        //            first.Decription = collection["txtDecription"];
        //            first.Keyword = collection["txtKeyword"];
        //            //first.TypeId = Convert.ToInt32(type);

        //            //var result = _service1.UpdateCategory(first);

        //            //if (!result) return View();

        //            _cache["Category"] = lData;
        //        }

        //        return RedirectToAction("Index", "Category");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }

        //}

        //[HttpGet]
        //public ActionResult Delete(int id)
        //{
        //    try
        //    {
        //        var lId = new List<int> { id };
        //        //var ok = _service1.DeleteCategory(lId);
        //        //if (ok)
        //        //{
        //        //    var lData = (List<RelaxCategoryDataContract>)_cache["Category"];
        //        //    var first = lData.FirstOrDefault(p => p.Id == id);
        //        //    if (first != null)
        //        //    {
        //        //        lData.Remove(first);
        //        //    }
        //        //    _cache["Category"] = lData;
        //        //}
        //        return RedirectToAction("Index", "Category");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Category");
        //    }

        //}

    }
}
